package selector

//选择排序
const (
	ASC  = true  //升序
	DESC = false //倒序
)

//
func SelectSortMax(arr [] int) int {
	length := len(arr)

	if length <= 1 {
		return arr[0]
	}
	//max
	max := arr[0] //假设第一个最大
	for i := 0; i < length; i++ {
		if arr[i] > max {
			max = arr[i]
		}
	}
	return max
}

func SelectSort(arr []int, sort bool) []int {
	length := len(arr)
	if length <= 1 {
		return arr
	}

	for i := 0; i < length-1; i++ { //只剩一个元素时不需要在循环挑选
		min := i //标记索引
		for j := i + 1; j < length; j++ {
			if sort{
				if arr[min] > arr[j] {
					arr[min], arr[j] = arr[j], arr[min]
				}
			}else {
				if arr[min] < arr[j] {
					arr[min], arr[j] = arr[j], arr[min]
				}
			}

		}
	}
	return arr
}
